Mobile devices can subscribe to services and content via a communication network. For example, a user of a device may wish to subscribe to a news feed, and any relevant news content will be automatically sent to the mobile device. Similarly, a mobile device may subscribe to an anti-virus service, and virus database updates are sent to the mobile device.
The Short Message Service (SMS) uses standard communications protocols to allow the exchange of short text messages between mobile devices, or between a mobile device and another node in a communication network such as a server. SMS based services are commonly used by mobile devices to subscribe to content or services. SMS services can be used to activate, subscribe to, update, and charge for content and services. SMS messages are delivered via a Short Message Service Centre (SMSC), which effectively provides a store-and-forward operation. When a user sends an SMS message to another user, the message is stored at the SMSC and delivered to the recipient when the recipient is next available which delivers it to the destination user when they are available.
The mobile device market is very fragmented, with many different types of device available to the user, and many different operators providing access networks for the device to attach to a communications network. The increasing number of options in terms of the mobile device and operator networks brings complexity in the system, as each operator introduces its own SMSC configuration and client to support the operation of a gateway. Any client application at the mobile device must be provided with operator-specific network settings to support an SMS based subscription. Each client application that is developed must be modified and given operator-specific settings. This means that separate operator variants are required for each application. The variants must be separately built, tested, signed, and published. The same problems are encountered when an update to the client application is published; updates must be provided in variants for different network operators.
A similar problem occurs because users have different devices. An application is configured for one type of device may not be optimally configured to work on another type of device. For example, different device firmware versions contain functional deviations, and client applications need to be able to adapt component functionality based on the firmware version.